<?php

namespace app\admin\model\yxerp;

use think\Model;

/**
 * @copyright 2025 银杏ERP
 * @author 银杏ERP
 * @version 1.0
 * @license http://www.hhyx.xyz
 * @developer Lhf
 */
class Sku extends Model
{
    // 表名
    protected $name = 'yxerp_product_sku';
    
    // 自动写入时间戳字段
    protected $autoWriteTimestamp = true;
    
    // 追加属性
    protected $append = ['product_name', 'product_code'];
    
    // 类型转换
    protected $type = [
        'price' => 'float',
        'cost' => 'float',
        'stock' => 'integer',
    ];
    
    /**
     * 获取产品名称
     */
    public function getProductNameAttr($value, $data)
    {
        if (!isset($data['product_id'])) {
            return '';
        }
        $product = Product::where('id', $data['product_id'])->find();
        return $product ? $product['name'] : '';
    }
    
    /**
     * 获取产品编码
     */
    public function getProductCodeAttr($value, $data)
    {
        if (!isset($data['product_id'])) {
            return '';
        }
        $product = Product::where('id', $data['product_id'])->find();
        return $product ? $product['code'] : '';
    }
    
    /**
     * 处理attributes字段获取
     */
    public function getAttributesAttr($value)
    {
        if (!$value) {
            return [];
        }
        return is_string($value) ? json_decode($value, true) : $value;
    }
    
    /**
     * 设置attributes字段
     */
    public function setAttributesAttr($value)
    {
        if (is_array($value)) {
            return json_encode($value);
        }
        return $value;
    }
    
    /**
     * 关联产品
     */
    public function product()
    {
        return $this->belongsTo(Product::class, 'product_id', 'id');
    }
}